home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / os2 / lxlt113.zip / LXLITE.GER < prev    next >
Text File  |  1996-05-22  |  26KB  |  508 lines

  1.          ────────────────────────────────────────────────────
  2.           lxLite - ein Packer fuer ausfuehrbare OS/2-Dateien
  3.          ────────────────────────────────────────────────────
  4.  
  5.                      Widmung: Meiner kleinen Tochter Alice,
  6.                       geboren am 12 Feb, 1996 um 03:45.
  7.  
  8.  1. Distribution
  9.  ───────────────
  10.  
  11.    Dieses  Programm ist Freeware. Das heisst, man kann es verbreiten, wie man
  12.  will,    ausser    fuer  den kommerziellen Gebrauch. Kommerzielle Verwendung ist
  13.  nur mit meiner ausdruecklichen Zustimmung erlaubt. Wie man mich kontaktieren
  14.  kann ist in der letzten Sektion dieser Datei zu sehen.
  15.  
  16.    Freeware  heisst  aber auch, dass es keinerlei Garantie fuer das gibt, was
  17.  das Programm macht, ob es das macht was man erwartet, ob es ueberhaupt etwas
  18.  macht.  Ich  uebernehme  keinerlei  Verantwortung  fuer irgendeinen Schaden,
  19.  entgangene  Profite  etc.,  die  durch  Fehler  dieses  Programmes (oder der
  20.  Uebersetzung der Dokumentation) verursacht werden.
  21.  
  22.    Wie    auch immer, es ist erlaubt, das Programm dazu zu verwenden, um jedes,
  23.  auch  jedes  kommerzielle  Produkt  zu  verbessern.  Und  zwar  nicht um den
  24.  eigenen  Vorteil,  sondern  um  den  Vorteil  aller armen User, die sich mit
  25.  riesigen ausfuehrbaren Dateien herumaergern muessen.
  26.  
  27.    Das    Programm  ist  ausschliesslich    in  Virtual  Pascal  1.0  Beta    #003,
  28.  geschrieben,  vor allem mit dem eingebauten 32-bit Assembler. Virtual Pascal
  29.  ist  eine  excellente Sprache, die alle Vorteile und Moeglichkeiten von OS/2
  30.  bedient  und  unterstuetzt,  gleichzeitig Borland Pascal kompatibel ist, und
  31.  einen maechtigen eingebauten Optimierer hat.
  32.  
  33.    Falls du den Source Code von lxLite willst, bitte wende Dich an mich, aber
  34.  du  musst  mir ganz sagen WARUM du ihn brauchst; Leute, die fremde Programme
  35.  unter eigenem Namen verkaufen wollen, bekommen ihn sicher nicht.
  36.  
  37.  2. Introduction
  38.  ───────────────
  39.  
  40.    Ich    denke, wir alle sind recht sauer ueber die gewaltige Groesse die fast
  41.  alle  modernen  Programme  haben,  die  unter    OS/2 laufen (fuer WinDOS gilt
  42.  allerdings das gleiche), ohne oft entscheidend mehr zu koennen als Programme
  43.  frueherer  Zeiten.  Ich  verstehe  nicht,  warum sie so gross sind, weil die
  44.  meisten Compiler, sogar IBM CSet generieren Code in moderaten Groessen.
  45.  
  46.    Nehmen  wir als Beispiel das allseits bekannte MultiMaint. Was um alles in
  47.  der  Welt  macht  das    Ding in einer 700K grossen EXE-Datei? Ich verstehe es
  48.  nicht.  Dazu  kommt  noch,  warum  wird  die  beinahe gleiche EXE-Datei noch
  49.  doppelt  und dreifach dazugepackt (Ich meine MultiSafe und IniMaint, die mit
  50.  MultiMaint  daherkommen).  Das  Programm ist ja ganz nett und es macht seine
  51.  Arbeit ganz gut, aber fuer diese Arbeit ist es einfach zu gross. OS/2 kernel
  52.  haben    etwa den gleichen Umfang. Wo ist da die Relation? Ich kann (und will)
  53.  es  mir  einfach nicht leisten so einen grossen Haufen Mist auf meine Platte
  54.  zu  laden,  also  habe  ich  MultiMaint & Co. wieder gekuebelt. Zu dumm fuer
  55.  deren Autoren.
  56.  
  57.    lxLite  ist    ein Workaround fuer dieses Problem. Ausfuehrbare Dateien kann
  58.  man  packen,  sie nehmen dann nur noch den halben Platz ein, und machen noch
  59.  immer    den  glichen  Job.  Dummerweise braucht es auch den gleichen Platz im
  60.  Speicher - das ist die Schuld des Programmautors.
  61.  
  62.    Soviel ich weiss, gibt es fuer OS/2 nur ein Programm, das etwas Aehnliches
  63.  macht,  REPACK  von  IBM  (EWS?).  Aber  verglichen  mit  lxLite  erzeugt es
  64.  groessere  Dateien,  obwohl  es  den  gleichen  Algorithmus  verwendet.  Zum
  65.  Beispiel,  COURIER.FON aus OS/2 Warp Build 8.192 wird von REPACK zu 44K, von
  66.  lxLite  aber  in  34K    gepackt. Spuer den Unterschied! BTW, LINK386+Resource
  67.  Compiler  compilieren    COURIER.FON  auch  in  eine  44K-Datei.  Daher    denke
  68.  ich,dass das sie eine gemeinsame Library verwenden.
  69.  
  70.    Ich    komprimierte  alle  meine ausfuehrbaren Dateien (inklusive aber nicht
  71.  nur  ?:\os2\*.exe,  ?:\os2\dll\*.* und ?:\os2\dll\ibmnull;laserjet) und mein
  72.  system  ist  nach  wie  vor  stabil.  Ein lxLite Benutzer (Pavel Roskin) hat
  73.  festgestellt,    dass  lxLite  sogar  os2krnl komprimiert:-) Sehr angenehm vor
  74.  allem    fuer  eine  einzelne  Bootdiskette  [Anmerkung    d.  Uebersetzers:  Es
  75.  stimmt].
  76.  
  77.  3. Features
  78.  ───────────
  79.  
  80.    lxLite  komprimiert die Dateien auf die gleiche Art wie LINK386 es tut. Es
  81.  gibt  keine  andere Moeglichkeit gepackte ausfuehrbare Dateien unter OS/2 zu
  82.  implementieren,  als  die zwei, die OS/2 Warp (oder die eine die 2.x) kennt.
  83.  So, hier ist eine kurze Beschreibung dieser beiden Algorithmen:
  84.  
  85.    1.  Run-length  packing.  Das  ist im Prinzip die gleiche Methode, wie sie
  86.  Microsoft  C  fuer DOS verwendet. Das Ergebnis ist sehr SCHLECHT, weils sich
  87.  ausfuehrbare  Dateien    nicht fuer die Pack-Methode eignen. Zum Beispiel, PCX
  88.  Dateien werden auf die gleiche Art gepackt.
  89.  
  90.    2.  Eine  Art  Lempel-Ziv  Algorithmus.  Lempel-Ziv    ist  die Methode, die
  91.  beinahe  alle    DOS-EXE  Packer  verwenden  -  LZEXE, PKLITE, PGMPAK etc. Die
  92.  Methode  die  fuer  ausfuehrebare  OS/2 Dateien standardisiert ist, ist IMHO
  93.  nicht die effektivste. Dazu kommt noch, dass ausfuehrbare OS/2 Dateien einen
  94.  anderen  Ladealgorithmus  haben als DOS-EXE-Dateien, Teile von ausfuehrbaren
  95.  OS/2-Dateien  koennen    auch  nur  geladen werden, wenn sie gebraucht werden.
  96.  Deshalb  kann ein Lempel-Ziv dictionary nicht ueber eine einzelne Page (4096
  97.  Bytes)  hinausgehen.  Folglich sind die Resultate auch nicht so gut, wie sie
  98.  theoretisch sein koennten.
  99.  
  100.    lxLite  kann  beide    Methoden  verwenden,  sowohl zum Packen, als auch zum
  101.  Entpacken.
  102.  
  103.    Im  Allgemeinen  ergibt  die  zweite  Methode die besseren Resultate, aber
  104.  moeglicherweise (?) gibt es Dateien fuer die die erste besser ist.
  105.  
  106.    Aus    diesem Grund werden defaultmaessig beide Methoden angewendet, die mit
  107.  dem kleineren Ergebnis gewaehlt.
  108.  
  109.    lxLite  kann  auch  benutzt    werden,  um Dateien zu entpacken, die bereits
  110.  komprimiert sind, sei es mit mit lxLite, LINK386 oder REPACK von IBM.
  111.  
  112.    Was fuer Dateien koennen nun mit lxLite gepackt werden? Das LX Format wird
  113.  unter OS/2 beinahe ueberall verwendet: Beinahe alles ist im LX format. Nicht
  114.  nur  EXE-Dateien,  sondern  auch  .DLL, .PDR, .QPR, .DRV, .FON, .SYS-Dateien
  115.  koennen mit lxLite gepackt werden.Sogar die VDDs (Virtual Device Drivers) in
  116.  \OS2\MDOS  koennen  damit gepackt werden.Praktisch kann man lxLite auf jedes
  117.  Datei loslassen: Wenn es kein LX ist, wird lxLite es nicht anruehren.
  118.  
  119.    Es ist also moeglich, den ganzen \OS2\*\ zu komprimieren, man bekommt jede
  120.  Menge    Extraplatz  ohne  irgendwelchen Overhead! Die DeKompressionszeit wird
  121.  durch    die  verkuerzten  Ladezeiten der verkleinerten Dateien von der Platte
  122.  bei weitem aufgewogen.
  123.  
  124.    Also,    Reboot   von   einer   Diskette   (eventuell   von     den   beiden
  125.  Installationsdisketten  und dann F3 waehlen, dann das entsprechende Laufwerk
  126.  waehlen,  wo  das  installierte  OS/2 liegt. Dann ist folgendes beim Command
  127.  prompt einzugeben:
  128.  
  129.    \[path]\lxLite os2\*.exe os2\dll\*.* os2\dll\ibmnull\*.drv
  130.  
  131.  und   so   weiter.   So  koennen  auch  die  Dateien,    welche    zur  Laufzeit
  132.  normalerweise    gesperrt  (EXE,DLL)  sind,  problemlos gepackt werden. lxLite
  133.  Version  1.00    und  hoeher ist sogar in der Lage Dateien, die gerade benutzt
  134.  werden,  zu  packen.  In  diesem Fall kann warnt lxLite und fragt nach ob es
  135.  das  Modul  auslassen    oder  durch  seine  gepackte  Version  ersetzen soll.
  136.  Grundsaetzlich  ist  das  ersetzen  auch  so  kein  Problem, nur muss man im
  137.  Hinterkopf  behalten,    dass  das  Original bereits im Speciher sitzt, und so
  138.  auch  jede  Menge  Platz  im  SWAPPER.DAT  auffressen. Ein Reboot sobald wie
  139.  moeglich ist daher immer eine gute Idee.
  140.  
  141.    Versionen von lxLite ueber 1.00 gibt es in zwei verschiedenen EXE-Dateien:
  142.  lxLite.exe  ist  die  normale    Version fuer OS/2 v2.99, Warp und hoeher. Die
  143.  andere,  namens lxLite2x.exe ist fuer die aelteren 32 bit Versionen von OS/2
  144.  (i.e.    2.x,  NICHT  1.x weil unter 1.x gab es das LX Format noch nicht). Als
  145.  OS/2 Warp User kann man es getrost loeschen.
  146.  
  147.  4. Optionen
  148.  ───────────
  149.  
  150.    Es  gibt  jede  Menge  Optionen  in lxLite. Ic